草庐IT

c++ - SIMD C++ 库

全部标签

c++ - 在 Visual C++ 中全局覆盖 malloc

我正在尝试找出一种在VisualC++(2005)中全局覆盖malloc和相关函数的方法。我的设置是一个带有静态链接运行时库的dll,它由我自己的c++代码、外部c++和c代码组成。我想要完成的是允许dll的用户设置他们自己的内存分配函数的实现。我无法使用的解决方案:全局覆盖new和delete,我的代码库中有很多外部C库,这意味着这不会捕获很多分配。#将malloc定义为不同的符号。这将迫使我将此定义推送到所有使用的外部库的build设置中,我真的想避免这种情况。我不关心的事情:如果任何外部库正在以其他方式分配内存(HeapAlloc、内存映射文件或它们提出的任何其他方式),我承认无

c++ - 如何使用带有标题和 .so 文件的库?

我是C新手,想使用一个库(MLTMultimediaFramework)我已经构建了它并生成了以下目录:includelibshare内lib有.so.a.la文件内include有.h文件现在,我被指示这样做:#include里面是include/mlt/framework/问题:为什么我需要放置只包含函数原型(prototype)的头文件?那么真正的功能在哪里呢?它们是否以某种方式与lib中包含的内容相关联?目录?在哪里放置我自己的文件和如何编译它?如何了解有关主题的更多信息:动态/静态库build/制作/安装如何使用任何C库 最佳答案

c++ - Direct3D 是否应该用于 Windows 中的 OpenGL?

由于Microsoft通常对Direct3D有一点偏见,在Direct3D中使用VBO的场景会比在OpenGL中使用VBO的相同场景更快,还是一样,因为这取决于显卡驱动程序?谢谢 最佳答案 在性能方面,假设GPU驱动程序不错,总体上没有区别。有些操作在OpenGL中比在DirectX9中更快,尽管DX10弥补了这一点。但在使用外部硬件时,一个好的经验法则是决定性能的不是您使用的API。编写网络代码时,瓶颈是网络适配器,无论您的套接字代码是用.NET编写的、用C编写的普通Berkeley套接字,还是可能使用某些Python库,都没有关

c++ - 如何使用 SSE 或 GLSL 优化 "u[0]*v[0] + u[2]*v[2]"代码行

我有以下功能(来自开源项目"recastnavigation"):///Derivesthedotproductoftwovectorsonthexz-plane.(@pu.@pv)///@param[in]uAvector[(x,y,z)]///@param[in]vAvector[(x,y,z)]///@returnThedotproductonthexz-plane.//////Thevectorsareprojectedontothexz-plane,sothey-valuesareignored.inlinefloatdtVdot2D(constfloat*u,constfl

c++ - 在 C/C++ 中实现跨平台、多线程服务器的最佳方法是什么?

与我合作的部分开发团队面临着编写服务器以与我们的产品集成的挑战。我们有一些提供CSDK的低级传感器设备,我们希望通过网络共享它们以供收集数据的人使用。听起来很简单,对吧?有人会将传感器设备连接到建筑物某一部分的机器并运行我们的服务器,从而与网络的其余部分共享设备。然后客户端将通过我们的应用程序连接到该服务器并从设备收集传感器读数。我创建了一个简单的、与语言无关的网络协议(protocol),以及一个用Java编写的引用实现。问题是创建一个可与仅提供用C编写的SDK的设备配合使用的实现。我们正在考虑执行以下操作:创建轮询线程以收集和存储每个连接设备的最新读数。使用多线程服务器将每个传入连

c++ - 模拟动态加载程序以修复共享库偏移量

我在工作中遇到了一个有趣的情况,我正试图为其找到一个好的解决方案。我们有在多核MIPS裸机(无内核)上运行的代码。我们需要与一些需要升级的第三方代码集成。我正在考虑将第3方代码编译为PIC,然后在下载此代码时更改代码/数据符号的GOT(我可以控制代码所在的位置)。此外,假设进入第3方代码的接口(interface)没有改变,因此没有新的PLT/GOT条目。这行得通吗?我还应该考虑哪些其他事项? 最佳答案 正确答案是否比“嵌入动态链接器/加载器”长?您的问题似乎与ld.so等解决的问题相同。描述动态链接器/加载器必须考虑的所有事情是书

c++ - Visual Studio 2015 : Compile C/C++ without a runtime library

有没有一种方法可以在不使用任何运行时库的情况下使用VisualStudio2015编译C/C++?我需要在没有运行时库的情况下进行编译,因为我正在创建自己的运行时库(用于我的操作系统)。在C/C++->CodeGeneration->RuntimeLibrary上有选项但我想要一个显示“无”的选项。我知道失去了CRT中的许多功能。 最佳答案 要在没有C运行时库(CRT)的情况下编译您的应用程序,请使用/MT、/NODEFAULTLIB链接器选项并在Linker->Advanced处重新定义入口点->入口点在您的代码中定义的函数,例如

c++ - 对 `mysql_init' 的 undefined reference

我正在尝试在我的新服务器上编译我的程序,但它目前对我不起作用。错误日志是:rasmus@web01:~/c++$maketestg++`mysql_config--cflags--libs`main.cpplogger.cppcpulogger.cpp-otest/tmp/ccPaMZUy.o:Infunction`CPULogger':/home/rasmus/c++/cpulogger.cpp:7:undefinedreferenceto`mysql_init'/home/rasmus/c++/cpulogger.cpp:8:undefinedreferenceto`mysql_r

c++ - 用于按位操作的高性能库?

处理非常大的bool数据集,尝试使用位运算来处理它,寻找一些处理位集的库可以:动态集合,可以通过指针或引用传递。按位读写。快速计数集合位。显然std::bitset的功能太有限了,有什么建议吗? 最佳答案 GMP提供lowlevelbitfunctions在任意大小的自然数上。这些是“低级GMP功能,用于实现高级GMP功能,但也适用于时间关键的用户代码。”这些包括用于计算1位的mpn_popcount和用于提取子序列的mpn_copyi。 关于c++-用于按位操作的高性能库?,我们在St

c++ - 技巧 : filling array values using macros (code generation)

AreC++TemplatesjustMacrosindisguise?我正在阅读上述主题,突然想到一个想法:为什么不尝试编写一些可以在我们的实际代码中使用的棘手宏,(不仅仅是作为在现实生活中无用的谜题)?所以首先想到的是:用宏填充数组值:intf(int&i){return++i;}#definee100r5(m20)#definem20m5,m5,m5,m5#definem5r5(e1)#definee1f(i)//avoiding++irighthere,toavoidUB!#definer5(e)e,e,e,e,eintmain(){inti=0;//thisisusedint